package com.jsb.laundry.model.shops;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 出库入库检查页面数据
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class BatchOPShopsOrderVo implements Serializable {

    private static final long serialVersionUID = 701700696615489657L;


    private List<ProductInfo> productInfoList;

    private OPConfirm opConfirm;

    /**
     * 衣物信息
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    public static class ProductInfo {
        @ApiModelProperty(value = "子订单id")
        private String subOrderId;

        @ApiModelProperty(value = "名称")
        private String title;

        @ApiModelProperty(value = "品牌")
        private String brand;

        @ApiModelProperty(value = "颜色")
        private String color;

        @ApiModelProperty(value = "瑕疵")
        private String flaw;

        @ApiModelProperty(value = "配饰")
        private String accessories;

        @ApiModelProperty(value = "洗后效果")
        private String afterWashingEffect;

        @ApiModelProperty(value = "洗护方式")
        private String washingType;

        @ApiModelProperty(value = "店铺入库的图片")
        private String shopInCheckImg;

        @ApiModelProperty(value = "店铺出库的图片")
        private String shopOutCheckImg;

        @ApiModelProperty(value = "入库是否检查：0未检查 1已检查")
        private String inCheckStatus;
        @ApiModelProperty(value = "出库是否检查：0未检查 1已检查")
        private String outCheckStatus;
        private String washLabel;
        private String userName;
        private String userPhone;
        @JsonFormat(pattern = "MM-dd", timezone = "GMT+8")
        private Date createdAt;
        private String outQrCode1;
        private String outQrCode2;
        private String pickupAddress;
        private String deliveryName;
        private String deliveryMobile;
        private String deliveryAddress;
        private String shopsName="";
        private String factoryName="";
        /**
         * 出入库记录
         */
        private List<OrderOPRecords> orderOPRecordList= new ArrayList();
    }

    /**
     * 入库确认
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    public static class OPConfirm {
        @ApiModelProperty(value = "操作人员账号")
        private String opAccount;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @ApiModelProperty(value = "入库时间")
        private Date inTime;

        @ApiModelProperty(value = "站点名称")
        private String shopsName;
    }

    /**
     * 出入库记录
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    public static class OrderOPRecords {
        @ApiModelProperty(value = "子订单id")
        private String subOrderId;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @ApiModelProperty(value = "送达时间")
        private Date createdAt;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @ApiModelProperty(value = "入库时间")
        private Date inAt;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @ApiModelProperty(value = "出库时间")
        private Date outAt;
        @ApiModelProperty(value = "配送员姓名")
        private String riderName;
        private String inCheck;
        private String shopInImg;
        private String shopOutImg;
        private String outCheck;
        @ApiModelProperty(value = "配送员手机号")
        private String riderPhone;
        @ApiModelProperty(value = "类型(入库、出库)")
        private String type;
        @ApiModelProperty(value = "送达时间")
        private String deliveryTime;
        @ApiModelProperty(value = "服务站点")
        private String shopsName;
        @ApiModelProperty(value = "操作员账号")
        private String opAccount;
        @ApiModelProperty(value = "照片")
        private String img;
    }

}
